package cn.zhfeat.hatch.web.service.impl.system;

import java.util.List;

import cn.zhfeat.core.base.BaseResultModel;
import cn.zhfeat.core.base.ResultStatus;
import cn.zhfeat.core.shiro.ShiroSessionData;
import cn.zhfeat.hatch.dto.company.CompanyInfoDto;
import cn.zhfeat.hatch.entity.company.CompanyInfo;
import cn.zhfeat.hatch.rpc.IAccountRpcService;
import cn.zhfeat.hatch.rpc.ICompanyInfoRpcService;
import cn.zhfeat.hatch.web.service.ICompanyInfoService;
import cn.zhfeat.hatch.web.utils.ConfigStatusCode;
import cn.zhfeat.hatch.web.utils.ShiroSessionDataUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


/**
 * @description: 公司信息相关web层服务类
 *
 * @author ZhangHao
 * @date 2018年5月18日 下午5:05:40
 * @version 1.0.0.1
 */
@Service("companyInfoService")
public class CompanyInfoServiceImpl implements ICompanyInfoService {

	@Autowired
	private ICompanyInfoRpcService companyInfoRpcService;
	
	@Autowired
	private IAccountRpcService accountRpcService;

	
	
    /**
     * @description: 根据公司id查找定位公司记录信息
     *
     * @param dto
     * @author ZhangHao
     * @date 2018年5月18日 下午5:32:17 
     * @version 1.0.0.1
     */
	public BaseResultModel ajaxCompanyInfo(CompanyInfoDto dto) {
		BaseResultModel result = new BaseResultModel();
		if(dto.getId() == null) {
			ShiroSessionData shiroSessionData = ShiroSessionDataUtil.getShiroSessionData();
			dto.setShiroSessionData(shiroSessionData);
			dto.setId(shiroSessionData.getCid()); 
		}
		
		if(dto.getId() == null) {
			result.setStatus(ResultStatus.DTO_ERROR.getStatusCode());
			result.setMessage(ResultStatus.DTO_ERROR.getStatusMessage() + ":主键ID为空"); 
			return result;
		}
		
		CompanyInfo info = companyInfoRpcService.findEntityByType(dto);
		if(info == null) {
			result.setStatus(ConfigStatusCode.FAILURE_CODE);
			result.setMessage(ConfigStatusCode.EMPTY_DATA_MSG); 
			return result;
		}
		result.setStatus(ResultStatus.SUCCESS.getStatusCode());
		result.setMessage(ResultStatus.SUCCESS.getStatusMessage());
		result.setData(info);
		return result;
	}



    /**
     * @description: 更新公司信息，依据条件为当前登录用户所携带的cid
     *
     * @param e
     * @author ZhangHao
     * @date 2018年5月22日 下午2:08:42 
     * @version 1.0.0.1
     */
	public BaseResultModel ajaxUpdateCompanyInfo(CompanyInfo e) {
		BaseResultModel result = new BaseResultModel();
		if(e.getId() == null) {
			ShiroSessionData shiroSessionData = ShiroSessionDataUtil.getShiroSessionData();
			e.setId(shiroSessionData.getCid()); 
//			e.setId((1L);  
		}
		
		Integer flag = companyInfoRpcService.updateSelective(e);
		if(flag != null && flag == 1) {
			result.setStatus(ResultStatus.SUCCESS.getStatusCode());
			result.setMessage(ResultStatus.SUCCESS.getStatusMessage());
			return result;
		}
		
		result.setStatus(ResultStatus.UPDATE_ERROR.getStatusCode());
		result.setMessage(ResultStatus.UPDATE_ERROR.getStatusMessage()); 
		return result;
	}


	/**
	 * @description: 查询公司基本信息的cid集合
	 *
	 * @param
	 * @author ZhangHao
	 * @date 2018/10/30 14:06
	 * @version 1.0.0.1
	 * @return java.util.List<java.lang.Long>
	 */

	@Override
	public List<Long> getCidList() {
		return companyInfoRpcService.getCidList();
	}

	/**
	 * @description: 查询公司信息的List集合
	 * 
	 * @param
	 * @author ZhangHao
	 * @date 2018/8/3 11:13
	 * @version 1.0.0.1
	 * @return java.util.List<cn.cecook.scrm.entity.company.CompanyInfo>
	 */
	
	@Override
	public List<CompanyInfo> getCompanyInfoList(CompanyInfoDto dto) {
		return companyInfoRpcService.selectEntityByType(dto);
	}


}











































